package com.ly.work.singleThread;

/**
 * Created by wyh on 3/4/2017.
 */
public class Singleeton {
    private static Singleeton singleton;
    public static int identifyCode; //插入一个验证码验证时是否生成了多个对象
    //private Test test; 插入你想要组合的对象
 
    private Singleeton(){
        //code.. 对你组合的对象初始化
    }
 
    public static Singleeton getInstance(int i){
        System.out.println("enter method"+i);
        if(singleton==null){  //第一次判断是否为null
            System.out.println("status 1 thread---"+i);
            synchronized(Singleeton.class){  //在代码块中加同步锁 如果已经有线程访问 当前线程转为阻塞状态
                    if(singleton==null){ //当第二个线程访问时 已经不为null了 那么不再创建对象
                        System.out.println("status 2 thread---"+i);
                        singleton=new Singleeton();
                    }
                }
            }
            return singleton;
        }
    public void method(){
        //code..
    }
}